package main

import (
	"fmt"
	"strconv"
	"strings"
)

func main() {
	str := "hello"
	fmt.Println(str, len(str))
	str2 := "abcdefg"
	for i := 0; i < len(str2); i++ {
		fmt.Printf("字符=%c\n", str2[i])
	}
	str3 := "summer来自湖北"
	r := []rune(str3) //有中文的把字符串转换为切片
	for i := 0; i < len(r); i++ {
		fmt.Printf("字符=%c\n", r[i])
	}
	//字符串转整数
	n, err := strconv.Atoi("123")
	if err != nil {
		fmt.Println("转换错误\n", err)
	} else {
		fmt.Printf("转换成功n=%d\n", n)
	}
	//整数转字符串
	str4 := strconv.Itoa(123456)
	fmt.Println(str4)
	//转进制
	str5 := strconv.FormatInt(10, 2)
	fmt.Println(str5)
	//查找指定的字符串
	b := strings.Contains("summer", "su")
	fmt.Println(b)
	//查找几个子串
	num := strings.Count("summer", "m")
	fmt.Println(num)
	//字符串比较 (==区分大小写  strings.EqualFold不区分)
	fmt.Println(strings.EqualFold("abc", "Abc"))
	fmt.Println("abc" == "Abc")
	//返回子串第一次的index否则-1
	fmt.Println(strings.Index("NLT_abc", "abc"))
	//返回子串在字符串最后一次出现的index
	fmt.Println(strings.LastIndex("go goland", "go"))
	//将指定的子串换成另一个子串
	fmt.Println(strings.Replace("go goland", "go", "java", -1))
	//按照指定的某个字符，为分割标识，将一个字符串拆分成字符串数组
	strArr := strings.Split("hello,world,ok", ",")
	for i := 0; i < len(strArr); i++ {
		fmt.Printf("str[%v]=%v\n", i, strArr[i])
	}
	//将字符串的字母进行大小写转换
	str6 := "goland Hello"
	str6 = strings.ToLower(str6)
	str6 = strings.ToUpper(str6)
	//将字符串左右两边的空格去掉
	str7 := strings.TrimSpace(" aaaaaa ")
	fmt.Println(str7)
	//将字符串两边指定的字符去掉
	fmt.Println(strings.Trim("!hello !", " !"))
	//去左 TrimLeft 去右TrimRight
	//判断字符串是否以指定字符串开头/结尾HasSuffix
	fmt.Println(strings.HasPrefix("http://xtiloveyou.top", "http"))
}
